package pATT.profilingAlgorithm.PersonalSearcher;
/***************************************************************************
 *                                VectorCreator                            * 
 *                       initial version by: Travis Bauer                  *
 *                      copyright (C) 2001 IGLU Research Group             *
 *                             trbauer@indiana.edu                         *
 ***************************************************************************/
/***************************************************************************
 * The licence for this code is included in LICENSE.txt.  If you did not   *
 * get this file with this distribution, request a copy from               *
 * iglu@cs.indiana.edu                                                     *
 ***************************************************************************/

/**
 * An interface for classes that can create vectors for documents.
 *
 * @author <a href="mailto:trbauer@indiana.edu">Travis Bauer</a>
 * @author <a href="mailto:rscherle@indiana.edu">Ryan Scherle</a>
 * @version 1.0
 * @since 1.0
 */

public interface VectorCreator {

  /////////////////////////////////////////////////////////////////
  /**
   * Tell the system to only allow words contained in
   * dict to appear in the vector for a document.
   */
  public void setDictionary(TermVector dict);

  /////////////////////////////////////////////////////////////////
  /**
   * Get a vector for document d.
   */
  public TermVector getVector(Document d);

  /////////////////////////////////////////////////////////////////
  /**
   * Whether or not all returned vectors should be
   * linearly scaled.
   */
  public void setLinearlyScale(boolean scale);

  /////////////////////////////////////////////////////////////////
  /**
   * Whether or not all vectors should be normalized.
   */
  public void setNormalize(boolean normanlize);

  /////////////////////////////////////////////////////////////////
  /**
   * All returned vectors should be no longer than <code>n</code>
   */
  public void setMaxSize(int n);
}

